package 剑指offer;

import java.util.ArrayList;
import java.util.Stack;

public class _06从尾到头打印链表 {
		/**
		 * 
		 *@time 2020年12月21日下午9:57:22
		 * 
		 *@param head
		 *@return int[]
		 *
		 *@see 辅助栈
		 */
	  public int[] reversePrint(ListNode head) {
		  	if(head==null) return new int [] {};
		  	Stack<Integer> stack=new Stack<Integer>();
		  	while(head!=null) {
		  		stack.push(head.val);
		  		head=head.next;
		  	}
		  	int arry[]=new int[stack.size()],i=0;
		  	
		while(!stack.isEmpty()) {
			arry[i++]=stack.pop();
		}
		  return arry;
	    }
	  /**
	   * 
	   *@time 2020年12月21日下午9:58:13
	   * 
	   *@param head
	   *@return int[]
	   *
	   *@see 递归的方法
	   */
	  public int[] reversePrint1(ListNode head) {
		  ArrayList<Integer> list=new ArrayList<Integer>();
		  recur(head, list);
		  int tem[]=new int[list.size()];
		  for(int i=0;i<list.size();i++)
			  tem[i]=list.get(i);
		  return tem;
	  }
	  public void recur(ListNode head,ArrayList<Integer> arry) {
		  if(head==null) return;
		  recur(head.next,arry);
		  arry.add(head.val);
	  }
}
